package com.yuantu.judiciary.service;

import com.yuantu.judiciary.model.dto.SearchRecordContentDTO;
import com.yuantu.judiciary.model.enums.SearchType;
import com.yuantu.judiciary.model.form.AddQueryRecordForm;
import com.yuantu.judiciary.model.form.GetQueryInfoForm;
import com.yuantu.judiciary.model.vo.*;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 查询记录接口
 *
 * @author syw
 * @since 2023-07-06
 **/
public interface IQueryRecordService {

    QueryRecordVO get(Long userId, SearchRecordContentDTO form, SearchType type);


    String getOther(Long userId, SearchRecordContentDTO form, SearchType searchType);

    Long getBySelf(Long accountId, SearchType type);

    PageVO<QueryRecordPersonVO> searchPersonPage(String type, Long userId, Pageable pageable);

    PageVO<QueryRecordEnterpriseVO> searchEnterprisePage(Long userId, Pageable pageable);

    List<MySearchPageVO> getMySearchPage(Long userId, SearchType type, String queryType);

    Boolean getLatestData(Long userId, GetQueryInfoForm form);

    PageVO<QueryRecordInfoVO> getList(Long accountId, Pageable pageable);

    Boolean addRecordByShare(AddQueryRecordForm form);

    List<LatestQueryVO> getLatestQueryVO(Long accountId, SearchType searchType, Boolean self);

    PageVO<QueryRecordPersonVO> searchPersonPageCondition(Long userId, Pageable pageable, Boolean self);

    List<QueryRecordAuthVO> getQueryRecordAuthList(Long accountId, Integer isUpload, String queryType);

    PageVO<QueryDetailVO> searchQueryRecordList(QuerySearchVO querySearch, Pageable pageable);

    List<QueryTimeVO> searchQueryTimeInfos(Long queryId);

    PageVO<QuerySourceVO> searchQueryRecordAuthList(QuerySourceSearchVO querySourceSearch, Pageable pageable);

    Boolean addQueryRecordAuth(Long queryId);
}
